﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CRUD.InterfaceDAO;
using GestionadorBaseDatos;

namespace CapaNegocios
{
    /// <summary>
    /// Interface que define comportamiento de la gestion de cada evento
    /// </summary>
    public interface IGestionEvento
    {
        /// <summary>
        /// procedimiento para insertar eventos
        /// </summary>
        /// <param name="crearEvento"></param>
        void Insert(Evento crearEvento);

        /// <summary>
        /// lista que trae los eventos organizados por la fecha
        /// </summary>
        /// <returns></returns>
        IList GetEventoFecha();

        /// <summary>
        /// lista que trae todos los eventos
        /// </summary>
        /// <returns></returns>
        IList GetAll();

        /// <summary>
        /// evento buscado dado su ID
        /// </summary>
        /// <param name="idEvento"></param>
        /// <returns></returns>
        Evento GetById(int idEvento);

        /// <summary>
        /// Lista que trae los eventos que tiene una categoria dada 
        /// </summary>
        /// <param name="idCategoria"></param>
        /// <returns></returns>
        IList GetByCategoria(int idCategoria);

        IList categorias();

        IList GetByDia(Evento e);

        void insertarProporcion(Proporcion propor);

        Categoria categoriaId(Categoria cat);

        Participante GetParticipante(Participante p);

        void Update(Evento e);

        void UpdateProporcion(Proporcion p);

        /// <summary>
        /// Metodo usado para postear el ganador de un evento
        /// </summary>
        void PostearTweet(Proporcion proporcion);
    }
}
